C语言printf("\101");输出的为什么是A

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:14:34

字符的表示方法有三种,
第一种是直接用字符表示就是用引号
char c1 = 'a'; //表示字符a
第二种是用asc2码表示,是整数
char c2 = 97; //也是表示字符a
第三种是用转义字符表示
char c3 = '\141'; //这里的141是八进制数,也就是97,还是字符a
char c4 = '\x61'; //这里的61是十六进制数,也就是97,还是字符a
然而在这里
"\101"由于加了转义字符,表示101是一个八进制数,将其转换成十进制就是65,也就是输出asc2码值为65的字符,也就是字符A

\101中的101是八进制的,也就是十进制的65.所以printf("\101");就是输出码值为65的字符,也就是A

/101是八进制,变成十进制等于65,A的ASCII码就是65。所以输出A。

\*** 是八进制,
\0x**是十六进制,

看书后面的附录,有个ASCII码对照表 101对应的是A